﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data; 
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Windows.Controls.Ribbon;

namespace ScrumMagic
{
    /// <summary>
    /// Follow steps 1a or 1b and then 2 to use this custom control in a XAML file.
    ///
    /// Step 1a) Using this custom control in a XAML file that exists in the current project.
    /// Add this XmlNamespace attribute to the root element of the markup file where it is 
    /// to be used:
    ///
    ///     xmlns:MyNamespace="clr-namespace:ScrumMagic"
    ///
    ///
    /// Step 1b) Using this custom control in a XAML file that exists in a different project.
    /// Add this XmlNamespace attribute to the root element of the markup file where it is 
    /// to be used:
    ///
    ///     xmlns:MyNamespace="clr-namespace:ScrumMagic;assembly=ScrumMagic"
    ///
    /// You will also need to add a project reference from the project where the XAML file lives
    /// to this project and Rebuild to avoid compilation errors:
    ///
    ///     Right click on the target project in the Solution Explorer and
    ///     "Add Reference"->"Projects"->[Browse to and select this project]
    ///
    ///
    /// Step 2)
    /// Go ahead and use your control in the XAML file.
    ///
    ///     <MyNamespace:CommonForm/>
    /// 
    /// контрол, от которого надо наследовать все формы: и списки, и карточки
    /// </summary>
    public class CommonForm : UserControl
    {
        private string title;
        private DataRowView formData;

        // название формы, которое будет на закладке таба
        public string Title
        {
            get { return title; }
            set { title = value; }
        }

        // строка данных из базы для заполнения полей карточки
        public DataRowView FormData
        {
            get { return formData; }
            set { formData = value; } 
        }

        /// <summary>
        /// Retuns contextual tab of form
        /// </summary>
        public virtual RibbonTab RibbonContextualTab
        {
            get;
            private set;
        }

        // медод для переопределения в дочерних формах, можно что-то сделать при открытии формы
        public virtual void OnActivated()
        {

        }

        // медод для переопределения в дочерних формах, можно отменить закрытие формочки, сделать валидацию
        public virtual bool OnClosing()
        {
            return true;
            
        }
        
        // медод для переопределения в дочерних формах, можно сохранить данные
        public virtual void OnClose()
        { 

        }
    }
}
